package com.找零钱动态规划;



import java.util.*;

public class Exchange {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int aim = sc.nextInt();
		int []penny = {1,5,10,20,50,100};
		System.out.println(countWays(penny, penny.length, aim));
	}
    public static int countWays(int[] penny, int n, int aim) {
        int[] dp = new int[aim+1];
        for(int i = 0;i <= aim;i++)
            if(i % penny[0] == 0)
                dp[i] = 1;//这个表示凑aim只用第一种货币的个数
        //dp[i]表示凑i元钱在现在的penny情况下需要多少方法
             
        for(int i = 1;i<n; i++)
            for(int j = 1;j<=aim;j++)
                if(j>=penny[i])
                    dp[j] = dp[j-penny[i]]+dp[j];//旧的d[j]表示在没有新的penny加入时候，需要的次数
         
        return dp[aim];
    }
}
